﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Remoting;
using System.Security.Authentication;
using System.Security.Cryptography;
using System.ServiceModel;
using System.Text;
using System.Windows.Forms;
using UserInterface.ClientApplication.Exceptions;


namespace UserInterface.ClientApplication
{
	public class ExceptionCatcher
	{
		public void Execute(Action func)
		{
			try
			{
				func();
			}
			catch (CommunicationException ex)
			{
				MessageBox.Show("Не удается соедениться с сервером!",
					"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

			}
			catch (AuthenticationException ex)
			{
				MessageBox.Show("Не верные имя пользователя или пароль!",
					"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
			}
			catch (CryptographicException ex)
			{
				MessageBox.Show("Ошибка\n" + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
			}
			catch (ClientException ex)
			{
				MessageBox.Show("Ошибка\n" + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
			}
			catch (Exception ex)
			{
				MessageBox.Show("Критическая ошибка\n", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
			}
		}
	}
}
